Technical Field of the Invention
This invention relates generally to computer networks and more particularly to dispersing error encoded data.
Description of Related Art
Computing devices are known to communicate data, process data, and/or store data. Such computing devices range from wireless smart phones, laptops, tablets, personal computers (PC), work stations, and video game devices, to data centers that support millions of web searches, stock trades, or on-line purchases every day. In general, a computing device includes a central processing unit (CPU), a memory system, user input/output interfaces, peripheral device interfaces, and an interconnecting bus structure.
As is further known, a computer may effectively extend its CPU by using “cloud computing” to perform one or more computing functions (e.g., a service, an application, an algorithm, an arithmetic logic function, etc.) on behalf of the computer. Further, for large services, applications, and/or functions, cloud computing may be performed by multiple cloud computing resources in a distributed manner to improve the response time for completion of the service, application, and/or function. For example, Hadoop is an open source software framework that supports distributed applications enabling application execution by thousands of computers.
In addition to cloud computing, a computer may use “cloud storage” as part of its memory system. As is known, cloud storage enables a user, via its computer, to store files, applications, etc. on an Internet storage system. The Internet storage system may include a RAID (redundant array of independent disks) system and/or a dispersed storage system that uses an error correction scheme to encode data for storage.
Within a cloud storage system, self-healing or rebuilding of lost or corrupted data elements is an important aspect for reliable data storage. For example, when a disk drive fails, the data it stores is lost but can be recreated from other data. As a specific example, in a dispersed storage system that uses error correction, data is encoded into a plurality of encoded data pieces (e.g., n pieces) of which, any combination of “m” encoded data pieces is sufficient to reconstruct the data. As such, when an encoded data piece is lost, it can be recreated by recovering the data and re-encoding the data to reproduce the “n” encoded data pieces, which includes a new copy of the lost encoded data piece.